﻿/*
 * Created by SharpDevelop.
 * User: alexandre
 * Date: 30/06/2013
 * Time: 12:43
 *
 * To change this template use Tools | Options | Coding | Edit Standard Headers.
 */

using System;
using System.Drawing;
using System.Windows.Forms;

namespace SVM_Sharp
{
    /// <summary>
    /// Description of Form1.
    /// </summary>
    public partial class FormConfusionMatrix : Form
    {
        public FormConfusionMatrix()
        {
            //
            // The InitializeComponent() call is required for Windows Forms designer support.
            //
            InitializeComponent();

            //
            // TODO: Add constructor code after the InitializeComponent() call.
            //
        }

        private static void testaDiffAtribui(ref TextBox _txtBox, String _nova)
        {
            if (_txtBox.Text.Equals(_nova))
                _txtBox.ForeColor = Color.Black;
            else
                _txtBox.ForeColor = Color.Red;

            _txtBox.Text = _nova;
        }

        /// <summary>
        /// Desenha a Matriz de Confusão, pegando os dados do array resultados[]
        /// e os colocando em suas devidas caixas de texto
        /// </summary>
        public void Gera_matriz_conf(double[] _resultados)
        {
            testaDiffAtribui(ref txt_acc, System.String.Format("{0:0.##}", _resultados[0] * 100) + " %");
            testaDiffAtribui(ref txt_PC, System.Convert.ToString(System.Convert.ToInt32(_resultados[1])));
            testaDiffAtribui(ref txt_PE, System.Convert.ToString(System.Convert.ToInt32(_resultados[2])));
            testaDiffAtribui(ref txt_NC, System.Convert.ToString(System.Convert.ToInt32(_resultados[3])));
            testaDiffAtribui(ref txt_NE, System.Convert.ToString(System.Convert.ToInt32(_resultados[4])));
            testaDiffAtribui(ref txt_totN, System.Convert.ToString(System.Convert.ToInt32(_resultados[3] + _resultados[4])));
            testaDiffAtribui(ref txt_totNO, System.Convert.ToString(System.Convert.ToInt32(_resultados[2] + _resultados[3])));
            testaDiffAtribui(ref txt_totP, System.Convert.ToString(System.Convert.ToInt32(_resultados[1] + _resultados[2])));
            testaDiffAtribui(ref txt_totPO, System.Convert.ToString(System.Convert.ToInt32(_resultados[1] + _resultados[4])));
            testaDiffAtribui(ref txt_tot, System.Convert.ToString(System.Convert.ToInt32((_resultados[1] + _resultados[2]) + (_resultados[3] + _resultados[4]))));

            if ((_resultados[1] + _resultados[2]) == 0)
                testaDiffAtribui(ref txt_accP, System.String.Format("{0:0.##}", 0 + " %"));
            else
                testaDiffAtribui(ref txt_accP, System.String.Format("{0:0.##}", (_resultados[1] / (_resultados[1] + _resultados[2])) * 100) + " %");

            if ((_resultados[3] + _resultados[4]) == 0)
                testaDiffAtribui(ref txt_accN, System.String.Format("{0:0.##}", 0 + " %"));
            else
                testaDiffAtribui(ref txt_accN, System.String.Format("{0:0.##}", (_resultados[3] / (_resultados[3] + _resultados[4])) * 100) + " %");

            if ((_resultados[1] + _resultados[4]) == 0)
                testaDiffAtribui(ref txt_preP, System.String.Format("{0:0.##}", 0 + " %"));
            else
                testaDiffAtribui(ref txt_preP, System.String.Format("{0:0.##}", (_resultados[1] / (_resultados[1] + _resultados[4])) * 100) + " %");

            if ((_resultados[2] + _resultados[3]) == 0)
                testaDiffAtribui(ref txt_preN, System.String.Format("{0:0.##}", 0 + " %"));
            else
                testaDiffAtribui(ref txt_preN, System.String.Format("{0:0.##}", (_resultados[3] / (_resultados[2] + _resultados[3])) * 100) + " %");
        }
    }
}